Inter symbol interference (ISI) degrades signal integrity through superimposition of pulses at varying frequencies. Data patterns with high frequency pulses are susceptible to ISI. Higher frequency pulses may phase shift more and attenuate more relative to lower frequency pulses leading to loss of the higher frequency pulses when superimposed with lower frequency pulses. The distortion to data patterns caused by ISI may lead to errors. The frequency at which uncompensated random data patterns in conventional signaling can be transmitted may be limited by ISI.
Equalization and Nyquist signaling are two solutions to ISI that have been proposed. Equalization is a curve-fitting solution that attempts to restore amplitude for higher frequency pulses in susceptible data patterns. It seeks to anticipate lost data and restore it through pre-emphasizing the amplitude on narrow pulses. Disadvantages of equalization include that it is at best a curve fitting solution, tweaking the amplitude of higher frequency pulses in random pulses of data to restore any anticipated loss in amplitude. The anticipated loss is very system specific and pattern specific, thus requiring tuning for predicted data patterns and for each custom system it is used in. It is susceptible to unpredicted data patterns and varying system transfer functions. The iterative nature of such solutions results in time-consuming and system-specific implementations, possibly never converging to optimal solutions.
Nyquist signaling is another prior art solution for ISI, which uses a raised cosine or sinc function pulses in the time domain to overcome ISI. The complexity to implement such functions is prohibitive in practice.
In Manchester encoding, the signal includes discontinuities at a bit cell boundary which may lead to high ISI. Some Frequency Shift Keying (FSK) encoding schemes avoid discontinuities at bit cell boundaries but FSK takes multiple cycles to represent a 0 or 1 data value.
In source synchronous signaling, data signals and one or more associated clock or strobe signals are sent from a transmitter to a receiver. The clock or strobe signal is used by the receiving circuit to determine times to sample the data signals.
In some signaling techniques, timing information can be embedded into the transmitted data signal and recovered through a state machine. An interpolator receives a number of clock or strobe signals from, for example, a phase locked loop or a delayed locked loop. The recovered timing is used to select among or between the clock or strobe signals received by the interpolator and provide the selected clock or strobe signal to a receiver to control sampling of the incoming data signal. In some implementations, training information is provided in the data signal to get the proper sample timing before actual data is transmitted. The training information can be provided from time to time to keep the sample timing. In other implementations, training information is not used, but the sample timing is created from the data signals of prior time. There are various techniques for embedding timing information. The 8B/10B technique is a well known technique.
The transmission of signals may be in a multi-drop (one transmitter to multiple receivers) or point-to-point (one transmitter to one receiver) environment. The transmission may be uni-directional, sequential bi-direction, or simultaneous bi-directional.
Different voltage levels rather than merely just low and high have been used to represent more values than merely just 0 and 1.
Noise on signals on conductors may cause the signals to be corrupted. A technique to reduce the effect of noise is to transmit the data on two wires and then reject the noise in the receiver by looking at the difference between the received signals rather than the absolute values. Typically, one conductor carries a signal that is the inverse of the other conductor.